package com.example.spinning.mapper;

import com.example.spinning.bean.Organ;
import com.example.spinning.bean.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户
 */
@Mapper
public interface UsersMapper {
    //加载用户信息
    User loadUserByUsername(@Param("username") String username);
    //加载用户信息通过昵称
    User loadUserByNickname(@Param("nickname") String nickname);


    //注册用户
    long reg(User user);

    //查询用户信息
    List<User> getSpecificUsers(@Param("start") Integer start,
                                @Param("count") Integer count,
                                @Param("user") User user);


    //查询所有用户信息
    List<User> getAllUsers();

    //删除用户信息
    int deleteUsersByIds(@Param("ids") String[] ids);
    int deleteUsersRolesByUid(@Param("ids") String[] ids);

    //更新用户信息
    int updateUserById(User user);

    //int addUser(User user);

    // 查询用户权限

    // 通过nickname查询用户与角色信息
    List<User> getUserByNickname(@Param("nickname") String nickname);

    // 通过role查询用户与角色关系
    List<User> getUserRole(@Param("rid") String rid);

    //    通过role的id删除priv表中记录
    int deleteUserRole(@Param("ids") String[] ids);

    // 通过条件查询用户数量
    int getUserCountByCondition(User user);






}
